package com.ruoyi.system.domain;

import java.time.LocalDateTime;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * pws状态对象 pws_status
 *
 * @author litianfu
 * @date 2025-02-08
 */
@Data
@ApiModel(value = "pws状态对象")
public class PwsStatus
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "主键")
    private Long id;

    /** 订单号 */
    @Excel(name = "订单号")
    @ApiModelProperty(value = "订单号")
    private String orderNo;

    /** 产线号 */
    @Excel(name = "产线号")
    @ApiModelProperty(value = "产线号")
    private Integer lineId;

    /** 下发状态（0：未下发；1：待生产；2：正在生产；3：已生产） */
    @ApiModelProperty(value = "下发状态（0：未下发；1：待生产；2：正在生产；3：已生产）")
    @Excel(name = "下发状态", readConverterExp = "0=：未下发；1：待生产；2：正在生产；3：已生产")
    private Integer isReady;

    /** 人工备料状态（0：未开始；1：已开始；2：已结束） */
    @ApiModelProperty(value = "人工备料状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "人工备料状态", readConverterExp = "0=：未开始；1：已开始；2：已结束")
    private Integer beiliaoStatus;

    /** 人工备料开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "人工备料开始时间")
    @Excel(name = "人工备料开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime beiliaoStart;

    /** 人工备料结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "人工备料结束时间")
    @Excel(name = "人工备料结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime beiliaoEnd;

    /** 前混状态（0：未开始；1：已开始；2：已结束） */
    @ApiModelProperty(value = "前混状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "前混状态", readConverterExp = "0=：未开始；1：已开始；2：已结束")
    private Integer premixStatus;

    /** 前混开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "前混开始时间")
    @Excel(name = "前混开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime premixStart;

    /** 前混结束时间 */
    @ApiModelProperty(value = "后混结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "前混结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime premixEnd;

    /** 后混状态（0：未开始；1：已开始；2：已结束） */
    @ApiModelProperty(value = "后混状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "后混状态", readConverterExp = "0=：未开始；1：已开始；2：已结束")
    private Integer aftermixStatus;

    /** 后混开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "后混状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "后混开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime aftermixStart;

    /** 后混结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "后混结束时间")
    @Excel(name = "后混结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime aftermixEnd;

    /** 调色状态（0：未开始；1：已开始；2：已结束） */
    @Excel(name = "调色状态", readConverterExp = "0=：未开始；1：已开始；2：已结束")
    @ApiModelProperty(value = "调色状态（0：未开始；1：已开始；2：已结束）")
    private Integer tiaoseStatus;

    /** 调色开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "调色状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "调色开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime tiaoseStart;

    /** 调色结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "调色结束时间")
    @Excel(name = "调色结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime tiaoseEnd;

    /** 包装状态（0：未开始；1：已开始；2：已结束） */
    @Excel(name = "包装状态", readConverterExp = "0=：未开始；1：已开始；2：已结束")
    @ApiModelProperty(value = "包装状态（0：未开始；1：已开始；2：已结束）")
    private Integer packStatus;

    /** 包装开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "包装状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "包装开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime packStart;

    /** 包装结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "包装结束时间")
    @Excel(name = "包装结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime packEnd;

    /** 检验状态（0：未开始；1：已开始；2：已结束） */
    @Excel(name = "检验状态", readConverterExp = "0=：未开始；1：已开始；2：已结束")
    @ApiModelProperty(value = "检验状态（0：未开始；1：已开始；2：已结束）")
    private Integer qaStatus;

    /** 检验开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "检验状态（0：未开始；1：已开始；2：已结束）")
    @Excel(name = "检验开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime qaStart;

    /** 检验结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "检验结束时间")
    @Excel(name = "检验结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime qaEnd;

    /** 是否删除 */
    @Excel(name = "是否删除")
    @ApiModelProperty(value = "是否删除")
    private Integer isDel;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    @ApiModelProperty(value = "复核状态")
    @Excel(name = "复核状态", readConverterExp = "0=：未复核；1：已复核；")
    private Integer fuheStatus;
    @ApiModelProperty(value = "复核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime fuheTime;

    @Excel(name = "预混设备（关联tank_info里的line_id）")
    @ApiModelProperty(value = "预混设备（关联tank_info里的line_id）")
    private String premixEquipment;
    @Excel(name = "预混操作人")
    @ApiModelProperty(value = "预混操作人")
    private String premixUser;
    @Excel(name = "后混设备（关联tank_info里的line_id）")
    @ApiModelProperty(value = "后混设备（关联tank_info里的line_id）")
    private String aftermixEquipment;
    @Excel(name = "后混操作人")
    @ApiModelProperty(value = "后混操作人")
    private String aftermixUser;
    @Excel(name = "调色设备（关联tank_info里的line_id）")
    @ApiModelProperty(value = "调色设备（关联tank_info里的line_id）")
    private String tiaoseEquipment;
    @Excel(name = "调色操作人")
    @ApiModelProperty(value = "调色操作人")
    private String  tiaoseUser;
    @Excel(name ="转缸状态" ,readConverterExp = "0：未开始；1：已开始；2：已结束 ")
    @ApiModelProperty(value = "转缸状态")
    private  Integer transferStatus;
    @Excel(name ="转缸开始时间")
    @ApiModelProperty(value = "转缸开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime transferStart;
    @Excel(name ="转缸结束时间")
    @ApiModelProperty(value = "转缸结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime transferEnd;
    @Excel(name = "转缸设备（关联tank_info里的line_id）")
    @ApiModelProperty(value = "转缸设备（关联tank_info里的line_id）")
    private String transferEquipment;
    @Excel(name = "转缸操作人")
    @ApiModelProperty(value = "转缸操作人")
    private String transferUser;

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("orderNo", getOrderNo())
                .append("lineId", getLineId())
                .append("isReady", getIsReady())
                .append("beiliaoStatus", getBeiliaoStatus())
                .append("beiliaoStart", getBeiliaoStart())
                .append("beiliaoEnd", getBeiliaoEnd())
                .append("premixStatus", getPremixStatus())
                .append("premixStart", getPremixStart())
                .append("premixEnd", getPremixEnd())
                .append("aftermixStatus", getAftermixStatus())
                .append("aftermixStart", getAftermixStart())
                .append("aftermixEnd", getAftermixEnd())
                .append("tiaoseStatus", getTiaoseStatus())
                .append("tiaoseStart", getTiaoseStart())
                .append("tiaoseEnd", getTiaoseEnd())
                .append("packStatus", getPackStatus())
                .append("packStart", getPackStart())
                .append("packEnd", getPackEnd())
                .append("qaStatus", getQaStatus())
                .append("qaStart", getQaStart())
                .append("qaEnd", getQaEnd())
                .append("isDel", getIsDel())
                .toString();
    }

    public PwsStatus(String orderNo, Integer isReady, Integer beiliaoStatus, Integer premixStatus, Integer aftermixStatus, Integer tiaoseStatus, Integer packStatus, Integer qaStatus, Integer isDel, LocalDateTime createTime, Integer fuheStatus, Integer transferStatus) {
        this.orderNo = orderNo;
        this.isReady = isReady;
        this.beiliaoStatus = beiliaoStatus;
        this.premixStatus = premixStatus;
        this.aftermixStatus = aftermixStatus;
        this.tiaoseStatus = tiaoseStatus;
        this.packStatus = packStatus;
        this.qaStatus = qaStatus;
        this.isDel = isDel;
        this.createTime = createTime;
        this.fuheStatus = fuheStatus;
        this.transferStatus = transferStatus;
    }
    public PwsStatus() {
    }
    public PwsStatus(String orderNo,LocalDateTime createTime) {
        this.orderNo = orderNo;
        this.createTime = createTime;
    }
}
